package br.org.acessobrasil.portal.modelo;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "sgctb_padrao_apresentacao")
public class PadraoApresentacao implements Serializable {
	private static final long serialVersionUID = 2981926662246593653L;
	@Id
	@GeneratedValue
	private Long nu_padrao_apresentacao;
	private String no_padrao;
	@Column(length=400000)
	private String de_padrao_apresentacao;
	@Column(length=400000)
	private String de_padrao_temp;
	private char st_situacao;
	
	@OneToMany( fetch = FetchType.LAZY)
	@JoinColumn(name = "nu_padrao_apresentacao")
	private List<Pagina> listPagina;
	
	@ManyToOne
	@JoinColumn(name = "nu_sitio")
	private Sitio sitio;
	
	public Long getNuPadraoApresentacao() {
		return nu_padrao_apresentacao;
	}

	public void setNuPadraoApresentacao(Long nu_padrao_apresentacao) {
		this.nu_padrao_apresentacao = nu_padrao_apresentacao;
	}

	public String getNoPadrao() {
		return no_padrao;
	}

	public void setNoPadrao(String no_padrao) {
		this.no_padrao = no_padrao;
	}

	public String getDePadraoApresentacao() {
		return de_padrao_apresentacao;
	}

	public void setDePadraoApresentacao(String de_padrao_apresentacao) {
		this.de_padrao_apresentacao = de_padrao_apresentacao;
	}

	public char getStSituacao() {
		return st_situacao;
	}

	/**
	 * 'r' = Rascunho<br>
	 * 'a' = Avaliado com erro<br>
	 * 'h' = Homologando<br>
	 * 'p' = Publicado<br>
	 * @param st_situacao r,a,h,p
	 */
	public void setStSituacao(char st_situacao) {
		this.st_situacao = st_situacao;
	}
	@Transient
	public String getNoSituacao() {
		switch (st_situacao) {
		case 'r':
			return "Rascunho";
		case 'a':
			return "Avaliado com erro";
		case 'h':
			return "Homologando";
		case 'p':
			return "Publicado";
		}
		return "";
	}

	public List<Pagina> getListPagina() {
		return listPagina;
	}

	public void setListPagina(List<Pagina> listPagina) {
		this.listPagina = listPagina;
	}

	public String getDePadraoTemp() {
		return de_padrao_temp;
	}

	public void setDePadraoTemp(String de_padrao_temp) {
		this.de_padrao_temp = de_padrao_temp;
	}

	public Sitio getSitio() {
		return sitio;
	}

	public void setSitio(Sitio sitio) {
		this.sitio = sitio;
	}

	
}
